Давайте попробуем сделать свой вид. Вот такой например:

Естественно, что при изменении размеров внутреннее содержание тоже будет приспосабливается под размер окна. Давайте создадим свой проект MFC AppWizard с именем TestView как SDI. На шестом шаге проверьте, что базовым классом (base class) является CView. Здесь же Вы можете убедиться, что нету вида для CTabCtrl.
Добавим теперь свой класс вида.

И в описание класса добавим ссылку на класс CTabCtrl:
class CTabView : public CView
{
......
public:
CTabCtrl cTab;
......
};
Элемент должен иметь идентификатор, вот мы его и опишем:
...... // TabView.h : header file // #define TAB_ID 1000 /////////////////////////////////////// // CTabView view ......
Нам нужно перегрузить функцию Create() для того, чтобы добавить туда код создания элемента:
///////////////////////////////////////
// CTabView message handlers
BOOL CTabView::Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd,
UINT nID, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CWnd::Create(lpszClassName, lpszWindowName, dwStyle,
rect, pParentWnd, nID, pContext);
if (cTab.Create(WS_CHILD | WS_VISIBLE|TCS_BOTTOM,
rect,this,TAB_ID)!=TRUE)
{
AfxMessageBox("Error Create cTab");
return FALSE;
}
CreateItem();
return TRUE;
}
Обратите внимание на функцию CreateItem(), я ее специально вынес, так как там будут создаваться закладки.
class CTabView : public CView
{
......
// Operations
public:
CTabCtrl cTab;
void CreateItem();
// Overrides
......
};
void CTabView::CreateItem()
{
TC_ITEM tc;
tc.mask=TCIF_TEXT;
CString str1="Nomer 1";
tc.pszText=(LPSTR)(LPCTSTR)str1;
tc.cchTextMax=str1.GetLength();
cTab.InsertItem(0,&tc);
tc.mask=TCIF_TEXT;
str1="Nomer 2";
tc.pszText=(LPSTR)(LPCTSTR)str1;
tc.cchTextMax=str1.GetLength();
cTab.InsertItem(0,&tc);
}
Нам нужно устанавливать его размер при изменении размера окна. Это можно сделать перегрузив CalcWindowRect():
void CTabView::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType)
{
CView::CalcWindowRect(lpClientRect, nAdjustType);
CRect rect=lpClientRect;
cTab.MoveWindow(0,0,rect.Width()-4,rect.Height()-4);
}
Теперь осталось объяснить виду, который участвует в схеме документ-вид, что папа у него уже другой:
......
#endif // _MSC_VER > 1000
#include "TabView.h"
class CTestViewView : public CTabView
{
......
};
Всё, можете запускать. Можете проверить и с MDI данный подход сработает:

Кстати, вы не забыли, что класс можно сохранить в коллекцию, а потом вставлять в проект ??? Если забыли, то почитайте "Шаг 66 Принцип работы - Component Gallery". В данном случае создав его в SDI упаковываем, а потом при переносе в MDI просто вставляем в проект.